# 简单聊一下闭包

# 保护变量不被外面访问到
# 使用变量、数据常驻内存
# def outer(fun):
#     # a = 20
#
#     def inner(*args):
#         fun(args)
#
#     return inner
#
#
# def b(name):
#     print("我是B函数",name)


# print("B", b)
# res = outer(b)  # 需要去请求一个网站数据资源  爬虫 一般用于数据不会更新很快的场景
# # outer(b)()
# #
# # outer(b)()
# # print("*" * 10)
# print(res("king"))

import datetime


# 计算一段代码的运行时间  封装性 闭包应用
def outer(fun):
    def inner(name):
        start_time = datetime.datetime.now()
        fun(name)
        end_time = datetime.datetime.now()
        print("执行时间为", end_time - start_time)

    return inner


@outer  # flask 表面
def run(name):
    print(name)
    for _ in range(1000000):
        pass


run("king")
# res = outer(run)
# res()  实战
# demo
# 写成企业真正的项目
